package controlador;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import modelo.Drogueria;
import vista.VentanaAgregarCliente;
import vista.VentanaPrincipal;
import modelo.Cliente;

public class ControladorAgregarCliente implements ActionListener {
	
	private VentanaPrincipal ventanaPrincipal;
	private VentanaAgregarCliente ventanaAgregarCliente;
	private Drogueria drogueria;
	private int posi;
	
	

	
	public ControladorAgregarCliente(Drogueria dro) {
		super();
		// TODO Auto-generated constructor stub
		ventanaAgregarCliente  = new VentanaAgregarCliente();
		ventanaPrincipal = new VentanaPrincipal();
		ventanaAgregarCliente.setLocationRelativeTo(null);
		ventanaAgregarCliente.setVisible(true);
		ventanaAgregarCliente.agregarListener(this);
		drogueria = dro;
	}
	
	/***********************************************************************/
	
	public void actionPerformed(ActionEvent ae){
			if (ae.getActionCommand().equalsIgnoreCase("Registrar")){ 
				agregarClientes();
				}
			if (ae.getActionCommand().equalsIgnoreCase("Modificar")){
				 modificarClientes();				   
			    }
			if (ae.getActionCommand().equalsIgnoreCase("Buscar")){
				buscarClientes();	
			    }
			if (ae.getActionCommand().equalsIgnoreCase("Eliminar")){
				eliminarClientes();
		      	}
			if (ae.getActionCommand().equalsIgnoreCase("Cancelar")){
				ventanaAgregarCliente.limpiarCampos();
				ventanaAgregarCliente.habilitar();
			    }
			if (ae.getActionCommand().equalsIgnoreCase("Salir")){
				ventanaAgregarCliente.dispose();								
		     	}
			
	}
	
	/***********************************************************************/
	
	
				 
		public void agregarClientes(){
		
				if (ventanaAgregarCliente.validar()== true){
					
				String cedula    = ventanaAgregarCliente.getCedula();
				String nombres   = ventanaAgregarCliente.getNombre();
				String apellidos = ventanaAgregarCliente.getApellido();
				String correo    = ventanaAgregarCliente.getCorreo(); 
				String direccion = ventanaAgregarCliente.getDireccion();
				String telefono  = ventanaAgregarCliente.getTelefono();	
			
								
				Cliente cliente = new Cliente(cedula,nombres,apellidos,telefono,correo,direccion);
		     	drogueria.agregarCliente(cliente);		     	
		     	ventanaAgregarCliente.mostrarMensaje("El Registro ha sido exitoso!"+drogueria.cantClientes());
		     	
		     	ventanaAgregarCliente.limpiarCampos();
		     	ventanaAgregarCliente.habilitar();
				}
				     	
		  
		
		}
		
		
	/***********************************************************************/	
		public void buscarClientes(){
			String cedula = ventanaAgregarCliente.getCedula();
			if(!cedula.equals("")){
				int pos = drogueria.buscarCliente(cedula);
				if(pos!=-1){
					ventanaAgregarCliente.setNombre(drogueria.getCliente(pos).getNombre());
					ventanaAgregarCliente.setApellido(drogueria.getCliente(pos).getApellido());
					ventanaAgregarCliente.setDireccion(drogueria.getCliente(pos).getDireccion());
					ventanaAgregarCliente.setTelefono(drogueria.getCliente(pos).getTelefono());
					ventanaAgregarCliente.setCorreo(drogueria.getCliente(pos).getEmail());
	
					this.posi = pos;
					ventanaAgregarCliente.inhabilitar();
				}
				else
					ventanaAgregarCliente.mostrarMensaje("Cliente no registrado");
			}
			else{
				ventanaAgregarCliente.mostrarMensaje("Por favor ingrese Cédula");
			    ventanaAgregarCliente.foco();
			}
		}			
		
		/***********************************************************************/
	
		 public void eliminarClientes(){
			drogueria.eliminarCliente(posi);
			ventanaAgregarCliente.limpiarCampos();
			ventanaAgregarCliente.mostrarMensaje("El Cliente ha sido eliminado!");
			ventanaAgregarCliente.habilitar();
					 
	       }
		 /***********************************************************************/
		 
		 public void modificarClientes(){
			    
			 try {
					String nombres   = ventanaAgregarCliente.getNombre();
					String apellidos = ventanaAgregarCliente.getApellido();
					String correo    = ventanaAgregarCliente.getCorreo(); 
					String direccion = ventanaAgregarCliente.getDireccion();
					String telefono  = ventanaAgregarCliente.getTelefono();				
								
			     	drogueria.getCliente(posi).setNombre(nombres);
			     	drogueria.getCliente(posi).setApellido(apellidos);
			     	drogueria.getCliente(posi).setEmail(correo);
			     	drogueria.getCliente(posi).setDireccion(direccion);
			     	drogueria.getCliente(posi).setTelefono(telefono);
			     		
			     
			     	ventanaAgregarCliente.mostrarMensaje("Modificacion exitosa");
			     	
			     	ventanaAgregarCliente.limpiarCampos();
			     	ventanaAgregarCliente.habilitar();
				}
				catch(Exception e) {
					// Mensaje de Dialogo en caso de que ocurra cualquier otra excepcion
					ventanaAgregarCliente.mostrarMensaje("Deben ser validos");
				}
			  
		 }
		 
}
			
		

